package br.com.sistema.persistencia.dao.permissao;

import javax.persistence.EntityManager;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;

import br.com.framework.client.permissao.entidade.Grupo;
import br.com.framework.client.persistencia.GenericDAOImpl;

public class GrupoDAO extends GenericDAOImpl<Grupo> {
	public GrupoDAO(EntityManager em) {
		super.setEntityManager(em);
	}

	public Integer getIdGrupoCadastradoPorNome(String nome) {
		Grupo grupo = new Grupo();
		grupo.setNome(nome);
		Session session = (Session) this.getEntityManager().getDelegate();
		Example example = this.criarExemplo(grupo);
		example.enableLike(MatchMode.EXACT);
		Criteria criteria = session.createCriteria(grupo.getClass()).add(example);
		criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
		grupo = (Grupo) criteria.uniqueResult();
		return grupo == null ? null : grupo.getId();
	}
}
